package edu.fasta.sisinfo2.poker;

import java.awt.Image;
import java.io.File;
import java.io.Serializable;

import javax.swing.ImageIcon;

public class Carta implements Serializable{
	private static String[] valores = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10",	"J", "Q", "K" };
	private static int[] puntajes = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 };
	private static String[] palos = { "♥", "♠", "♦", "♣" };
	private int puntaje;
	private int valor;
	private int palo;
	private Image imagen;

	/**
	 * Crea un objeto Carta indicandole el palo y su valor. 
	 * @param palo Palo de la Carta.
	 * @param valor Valor de la Carta.
	 */

	public Carta(int palo, int valor){
		this.puntaje = puntajes[valor];
		this.valor = valor;
		this.palo = palo;	
		this.setImagen(palo, valor);
	}

	/**
	 * @return Devuelve el palo de la Carta.
	 */

	public int getPalo(){
		return palo;
	}

	/**
	 * @return Devuelve el valor de la Carta.
	 */

	public int getValor(){
		return valor;
	}

	/**
	 * @return Devuelve un String con el valor de la Carta.
	 */

	public String imprimirValor(){
		return valores[valor];
	}

	/**
	 * @return Devuelve el puntaje de la Carta.
	 */

	public int getPuntaje() {
		return puntaje;
	}

	/**
	 * Cambia el puntaje de la Carta.
	 * @param puntaje Puntaje nuevo.
	 */

	public void setPuntaje(int puntaje){
		this.puntaje=puntaje;
	}

	/**
	 * @return Un String con el valor y el palo de la Carta.
	 */

	public String imprimirla(){
		return valores[valor] + " de " + palos[palo] + ", ";
	}

	/**
	 * @return Un String con el palo de la Carta.
	 */
	public String imprimirPalo() {
		return palos[palo];
	}

	public Image getImagen() {
		return imagen;
	}

	public void setImagen(int palo, int valor) {
		File img = new File(palo+valor+".png");
		
		if(img.exists()){ //si la imagen existe la crea
			 imagen = new ImageIcon(getClass().getResource(palo+valor+".png")).getImage();
		}
       
	}

}
